/* 
 * @autor: Aristo Ingenieros SRL.
 * @modulo: MODULO CONFIGURAR CUENTA CONTABLE.
 * 
 * @descripcion:
 *              - carga del panel configurar cuenta contable
 * 
 */

var idCuentaEliminada = -1;
var idPadre = "0";

function loadCCC() {
    var loadcccdialogs = $("#panelSuperior");
    loadcccdialogs.load("ui/html/accounting/ccc/dialogAgregarCuentaContable.html", function() {
        $("#dialog-agregar-cuenta-contable").hide();
        $("#dialog-agregar-cuenta-contable").dialog({
            resizable: false,
            modal: true,
            autoOpen: false,
            closeOnEscape: false,
            show: 'scale',
            hide: 'explode',
            width: 620,
            buttons: {
                "CANCELAR": function() {
                    $("#txtCodigoPadre_acc").val("");
                    $("#txtCodigo_acc").val("");
                    $("#txtDescripcion_acc").val("");
                    idPadre = "0";
                    $(this).dialog("close");
                },
                "GUARDAR": function() {
                    guardarCuentaContable();
                }
            }
        });
        //eventos interactivos de esta ventana
        $("#tipoSeccion_acc").bind("click keydown keyup", function() {
            var seccion = $("#tipoSeccion_acc").val();
            if (seccion === "e") {
                $("#fila_padreacc").hide();
            } else if (seccion === "g") {
                $("#fila_padreacc").show();
                $("#Padre_acc").text("ELEMENTO");
            } else if (seccion === "c") {
                $("#fila_padreacc").show();
                $("#Padre_acc").text("GRUPO");
            } else if (seccion === "s1") {
                $("#fila_padreacc").show();
                $("#Padre_acc").text("CUENTA");
            } else if (seccion === "s2") {
                $("#fila_padreacc").show();
                $("#Padre_acc").text("SUB CUENTA 1");
            } else if (seccion === "s3") {
                $("#fila_padreacc").show();
                $("#Padre_acc").text("SUB CUENTA 2");
            } else if (seccion === "d") {
                $("#fila_padreacc").show();
                $("#Padre_acc").text("SUB CUENTA 3");
            }
            $("#txtCodigoPadre_acc").val("");
            idPadre = "0";
            //autocomplete padre
            $("#txtCodigoPadre_acc").autocomplete({
                source: URI_ARISTO + "?node=" + _GET_CUENTAS + "&mod=CONTA&auto=SI&tipo=CONTABLE&seccion=" + $("#Padre_acc").text(),
                minLength: 1,
                select: function(event, ui) {
                    if (ui.item) {
                        idPadre = ui.item.id;
                    } else {
                        idPadre = "0";
                    }
                }
            });
        });
    });

    loadcccdialogs.load("ui/html/accounting/ccc/dialogEliminarCuentaContable.html", function() {
        $("#dialog-eliminar-cuenta-contable").hide();
        $("#dialog-eliminar-cuenta-contable").dialog({
            resizable: false,
            modal: true,
            autoOpen: false,
            closeOnEscape: false,
            show: "scale",
            hide: 'explode',
            width: 570,
            buttons: {
                "SI": function() {
                    eliminarCuentaContable();
                },
                "NO": function() {
                    idCuentaEliminada = -1;
                    $(this).dialog("close");
                }
            }
        });
    });
    loadcccdialogs.load("ui/html/accounting/ccc/dialogEditarCuentaContable.html", function() {
        $("#dialog-editar-cuenta-contable").hide();
        $("#dialog-editar-cuenta-contable").dialog({
            resizable: false,
            modal: true,
            autoOpen: false,
            closeOnEscape: false,
            show: "scale",
            hide: 'explode',
            width: 620,
            buttons: {
                "CANCELAR": function() {
                    $(this).dialog("close");
                    idCuentaContableEditada = -1;
                    //limpiarComponentesCuentaContable();
                },
                "GUARDAR": function() {
                    guardarEdicionCuentaContable();
                }
            }
        });
    });
}

function eventoLoadPanelCCC() {
    load = new ajaxLoader();
    fverificaLogin();
    loadConfigDialogsSystem();
    loadCCC();
    var cuerpo = $("#body-aristo");
    cuerpo.empty().load("ui/html/accounting/ccc/panelConfigCuentaContable.html", function() {
        var $grilla_ccc = $("#grilla_ccc");
        $grilla_ccc.datagrid(configDG_pccc);

        var panelccc = $("#panel-configurar-cuenta-contable");

        $("#btnBuscar_ccc").button().click(buscarCuentasContables);
        $("#btnAgregar_ccc").button().click(agregarCuentaContable);
        $("#btnCancelar_ccc").button().click(salirCuentaContable);

        panelccc.effect('slide', 500, buscarCuentasContables);

        if (load)
            load.remove();
    });
    return false;
}

//evento de boton buscar
function buscarCuentasContables() {
    load = new ajaxLoader();
    var json = new Object();
    json.mod = 'CONTA';
    json.node = _GET_CUENTAS;
    json.term = $("#txtBuscar_ccc").val();
    json.tipo = "CONTABLE";
    json.seccion = "";

    $.ajax({
        data: json,
        type: "GET",
        dataType: "json",
        url: URI_ARISTO,
        success: function(datas) {
            if (datas.estado !== "SUCCESS") {
                mensajeAristo("error.png", datas.descripcion);
            }
            var $grilla_ccc = $("#grilla_ccc");
            $grilla_ccc.datagrid({jsonStore: {data: {"rows": datas.data}}});

            if (load)
                load.remove();
        },
        error: ferror
    });
    return false;
}

//evento de boton agregar
function agregarCuentaContable() {
    $("#txtCodigoPadre_acc").val("");
    $("#txtCodigo_acc").val("");
    $("#txtDescripcion_acc").val("");
    idPadre = "0";
    $("#tipoSeccion_acc").click();
    $("#dialog-agregar-cuenta-contable").dialog("open");
    return false;
}

//evento de boton salir
function salirCuentaContable() {
    var panelccc = $("#panel-configurar-cuenta-contable");
    panelccc.effect('drop', 500);
    return false;
}

/*********************** JSON *************************************************/
var idCuentaContableEditada = -1;

function editarFila_ccc(ID) {
    idCuentaContableEditada = ID;

    var json = new Object(); //json eliminar de la base de datos
    json.mod = 'CONTA';
    json.node = _GET_CUENTA;
    json.id = ID;
    json.tipo = "CONTABLE";
    load = new ajaxLoader();
    $.ajax({
        data: json,
        type: "POST",
        dataType: "json",
        url: URI_ARISTO,
        success: resultEditarFilaCCC,
        error: ferror
    });
}

function resultEditarFilaCCC(data) {
    if (data !== null) {
        if (data.estado === "SUCCESS") {
            data = data.data;
            if (data.codpadre !== "") {
                $("#fila_padreecc").show();
                $("#Padre_ecc").text("* Editando " + data.seccion + " que pertenece a " + data.codpadre + " - " + data.despadre);
            } else {
                $("#fila_padreecc").hide();
                $("#Padre_ecc").text("");
            }
            $("#tipoSeccion_ecc").val(data.seccion);
            $("#txtCodigo_ecc").val(data.codigo);
            $("#txtDescripcion_ecc").val(data.descripcion);
            $("#dialog-editar-cuenta-contable").dialog("open");
        } else {
            mensajeAristo('error.png', data.descripcion);
        }
    } else {
        mensajeAristo('error.png', 'Error. Verificar conexión de internet');
    }
    if (load)
        load.remove();
}

function guardarEdicionCuentaContable() {
    if (idCuentaContableEditada !== -1) {
        var json = new Object(); //json eliminar de la base de datos
        json.mod = 'CONTA';
        json.node = _PUT_CUENTA;
        json.id = idCuentaContableEditada;
        json.codigo = $("#txtCodigo_ecc").val();
        json.descripcion = $("#txtDescripcion_ecc").val();
        json.tipo = 'CONTABLE';
        if (json.codigo.length > 0 && json.descripcion.length > 0) {
            load = new ajaxLoader();
            $.ajax({
                data: json,
                type: "POST",
                dataType: "json",
                url: URI_ARISTO,
                success: resultadoguardarEdicionCuentaContable,
                error: ferror
            });
        } else {
            mensajeAristo('error.png', 'Ingrese todos los campos');
        }
    }
}

function resultadoguardarEdicionCuentaContable(data) {
    //console.log(data);
    if (data !== null) {
        if (data.estado === 'SUCCESS') {
            data = data.data;
            $("#dialog-editar-cuenta-contable").dialog("close");
            mensajeAristo('ok.png', data.descripcion);
            buscarCuentasContables();
        } else {
            $("#dialog-editar-cuenta-contable").dialog("close");
            mensajeAristo('error.png', data.descripcion);
        }
    } else {
        mensajeAristo('error.png', 'Error. Verificar conexión de internet');
    }
    if (load)
        load.remove();
}

/********************************************/

function eliminarFila_ccc(ID) {
    idCuentaEliminada = ID;
    //dx = $("#rowValue_" + oId).html();
    //console.log("llego: "+configDG_pccc_value);
    $("#dialog-eliminar-cuenta-contable").dialog("open");
}

function eliminarCuentaContable() {
    if (idCuentaEliminada !== -1) {
        //$("#rowPersona_" + idCuentaEliminada).remove(); //elimina del tabla html
        load = new ajaxLoader();
        var json = new Object(); //json eliminar de la base de datos
        json.mod = 'CONTA';
        json.node = _DELETE_CUENTA;
        json.id = idCuentaEliminada;

        $.ajax({
            data: json,
            type: "POST",
            dataType: "json",
            url: URI_ARISTO,
            success: resultadoeliminarCuentaContable,
            error: ferror
        });
    }
}

function resultadoeliminarCuentaContable(data) {
    if (data !== null) {
        if (data.estado === 'SUCCESS') {
            data = data.data;
            //$("#rowCuentaCP_" + idCuentaEliminada).remove();
            $("#dialog-eliminar-cuenta-contable").dialog("close");
            mensajeAristo('ok.png', data.descripcion);
            buscarCuentasContables();
        } else {
            $("#dialog-eliminar-cuenta-contable").dialog("close");
            mensajeAristo('error.png', data.descripcion);
        }
    } else {
        mensajeAristo('error.png', 'Error. Verificar conexión de internet');
    }
    if (load)
        load.remove();
}

/**********************************************************/

function guardarCuentaContable() {
    var seccion = $("#tipoSeccion_acc").val();
    //var codigoP = $("#txtCodigoPadre_acc").val();
    var codigo = $("#txtCodigo_acc").val();
    var descripcion = $("#txtDescripcion_acc").val();
    var continua = true;

    var value_seccion = "";
    switch (seccion) {
        case "e":
            value_seccion = "ELEMENTO";
            break;
        case "g":
            value_seccion = "GRUPO";
            break;
        case "c":
            value_seccion = "CUENTA";
            break;
        case "s1":
            value_seccion = "SUB CUENTA 1";
            break;
        case "s2":
            value_seccion = "SUB CUENTA 2";
            break;
        case "s3":
            value_seccion = "SUB CUENTA 3";
            break;
        case "d":
            value_seccion = "DETALLE";
            break;
    }

    if (value_seccion !== "ELEMENTO" && idPadre === "0") {
        continua = false;
    }
    //console.log("continua: "+continua+" , "+idPadre+" ... "+value_seccion);
    if (continua && codigo.length > 0 && descripcion.length > 0) {
        load = new ajaxLoader();
        var json = new Object();
        json.mod = 'CONTA';
        json.node = _POST_CUENTA;
        json.seccion = value_seccion;
        json.idpadre = idPadre;
        json.codigo = codigo;
        json.descripcion = descripcion;
        json.tipo = "CONTABLE";
        $.ajax({
            data: json,
            type: "POST",
            dataType: "json",
            url: URI_ARISTO,
            success: resultguardarCuentaContable,
            error: ferror
        });
    } else {
        mensajeAristo('warning.png', 'Ingrese todos los campos');
    }
}

function resultguardarCuentaContable(data) {
    if (data !== null) {
        if (data.estado === "SUCCESS") {
            data = data.data;
            //limpiarComponentesCuentaContable();
            $("#dialog-agregar-cuenta-contable").dialog("close");
            mensajeAristo('ok.png', data.descripcion);
            buscarCuentasContables();
        } else {
            $("#dialog-agregar-cuenta-contable").dialog("close");
            mensajeAristo('warning.png', data.descripcion);
        }
    } else {
        mensajeAristo('error.png', 'Error. Verificar conexi&oacute;n de internet');
    }
    if (load)
        load.remove();
}